package com.cy.ppj.service.withdraw;

import com.cy.ppj.model.PageBean;
import com.cy.ppj.model.Result;
import com.cy.ppj.model.ao.withdraw.WithdrawApplyAO;
import com.cy.ppj.model.domian.account.Withdraw;
import com.cy.ppj.model.query.WithdrawAdminQuery;
import com.cy.ppj.model.query.WithdrawQuery;
import com.cy.ppj.model.vo.WithdrawAdminVO;

/**
 * 提现服务
 * @author: tanyilin
 * @create: 2018年7月31日 下午1:59:10
 */
public interface WithdrawService {

	/**
     * 提现申请
     * @param withdrawApplyAO
     */
    void withdrawApply(WithdrawApplyAO withdrawApplyAO, Long userId);
    
    /**
     * 提现拒绝(退回)
     * @param withdrawId
     */
    void withdrawReturn(Long withdrawId);
    
    /**
     * 提现成功
     * @param withdrawId
     */
    void withdrawSuccess(Long withdrawId);
    
    /**
     * 前台用户的提现记录
     * @param withdrawQuery
     * @return
     */
    PageBean<Withdraw> queryWithdtawList(WithdrawQuery withdrawQuery);
    
    /**
     * 后台提现记录处理列表
     * @param withdrawAdminQuery
     * @return
     */
    PageBean<WithdrawAdminVO> queryWithdrawListAdmin(WithdrawAdminQuery withdrawAdminQuery);
    
    /**
     * 获取提现统计（笔数、总金额）
     * @return
     */
    Result selectWithdrawStatistics();
}
